unit uSBDUnit_View;
interface
uses uSBDUnit_Model, uSBDUnit_Types;


type
IUnitTestView = interface
  ['{E7604B7C-7FBB-4690-88C2-B44EC7BD23C3}']
  procedure Notify_EngineObserver( const Engine: ITestEngine; isObserver: boolean);
  procedure Notify_EnginePropsChanged( const Engine: ITestEngine; Changes: TEnginePropSet);
    // isRunning or StopOnFirstFail changed
  procedure Notify_AddedNode( const Engine: ITestEngine; const NewModelNode: ITestNode);
  procedure Notify_MainViewPropertiesChanged( const Engine: ITestEngine; const ModelNode: ITestNode; Props: TChangeableNodePropertySet);
    {$REGION 'Description'}
    // At least one of .... changed
    // TestResult
    // Enabled
    // Status
    // ExecutionStartTime
    // ExecutionDuration
    // FailCount
    // ExecuteCount, LoadCount
    {$ENDREGION}
  procedure Notify_TestFailure( const Engine: ITestEngine; const ModelNode: ITestCaseNode; const ErrMsg: string; WhenError: TDateTime);
  procedure Notify_NonFailMessageLogged(
    const Engine: ITestEngine; const ModelNode: ITestNode; MsgIdx: integer);
  procedure ShutDown;
  end;

ITestEngine_ViewRegistrar = interface
  ['{8111F9AA-589A-49EF-8549-3CC56A4AC5F5}']
    procedure RegisterView  ( const View: IUnitTestView);
    procedure DeregisterView( const View: IUnitTestView);
  end;

implementation

end.
